home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  28.5 KB  |  1,340 lines

  1. package javax.swing;
  2.  
  3. import java.awt.AWTEvent;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Dimension;
  8. import java.awt.LayoutManager;
  9. import java.awt.Point;
  10. import java.awt.Rectangle;
  11. import java.awt.event.InputEvent;
  12. import java.awt.event.MouseEvent;
  13. import java.io.IOException;
  14. import java.io.ObjectInputStream;
  15. import java.util.Enumeration;
  16. import java.util.EventObject;
  17. import java.util.Hashtable;
  18. import java.util.Vector;
  19. import javax.accessibility.Accessible;
  20. import javax.accessibility.AccessibleContext;
  21. import javax.swing.border.Border;
  22. import javax.swing.border.LineBorder;
  23. import javax.swing.event.CellEditorListener;
  24. import javax.swing.event.ChangeEvent;
  25. import javax.swing.event.ListSelectionEvent;
  26. import javax.swing.event.ListSelectionListener;
  27. import javax.swing.event.TableColumnModelEvent;
  28. import javax.swing.event.TableColumnModelListener;
  29. import javax.swing.event.TableModelEvent;
  30. import javax.swing.event.TableModelListener;
  31. import javax.swing.plaf.TableUI;
  32. import javax.swing.plaf.UIResource;
  33. import javax.swing.table.DefaultTableCellRenderer;
  34. import javax.swing.table.DefaultTableColumnModel;
  35. import javax.swing.table.DefaultTableModel;
  36. import javax.swing.table.JTableHeader;
  37. import javax.swing.table.TableCellEditor;
  38. import javax.swing.table.TableCellRenderer;
  39. import javax.swing.table.TableColumn;
  40. import javax.swing.table.TableColumnModel;
  41. import javax.swing.table.TableModel;
  42.  
  43. public class JTable extends JComponent implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible {
  44.    private static final String uiClassID = "TableUI";
  45.    public static final int AUTO_RESIZE_OFF = 0;
  46.    public static final int AUTO_RESIZE_NEXT_COLUMN = 1;
  47.    public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS = 2;
  48.    public static final int AUTO_RESIZE_LAST_COLUMN = 3;
  49.    public static final int AUTO_RESIZE_ALL_COLUMNS = 4;
  50.    protected TableModel dataModel;
  51.    protected TableColumnModel columnModel;
  52.    protected ListSelectionModel selectionModel;
  53.    protected JTableHeader tableHeader;
  54.    protected int rowHeight;
  55.    protected int rowMargin;
  56.    protected Color gridColor;
  57.    protected boolean showHorizontalLines;
  58.    protected boolean showVerticalLines;
  59.    protected int autoResizeMode;
  60.    protected boolean autoCreateColumnsFromModel;
  61.    protected Dimension preferredViewportSize;
  62.    protected boolean rowSelectionAllowed;
  63.    protected boolean cellSelectionEnabled;
  64.    protected transient Component editorComp;
  65.    protected transient TableCellEditor cellEditor;
  66.    protected transient int editingColumn;
  67.    protected transient int editingRow;
  68.    protected transient Hashtable defaultRenderersByColumnClass;
  69.    protected transient Hashtable defaultEditorsByColumnClass;
  70.    protected Color selectionForeground;
  71.    protected Color selectionBackground;
  72.    // $FF: synthetic field
  73.    static Class class$java$lang$Object;
  74.    // $FF: synthetic field
  75.    static Class class$java$lang$Number;
  76.    // $FF: synthetic field
  77.    static Class class$java$util$Date;
  78.    // $FF: synthetic field
  79.    static Class class$javax$swing$ImageIcon;
  80.    // $FF: synthetic field
  81.    static Class class$java$lang$Boolean;
  82.  
  83.    public JTable() {
  84.       this((TableModel)null, (TableColumnModel)null, (ListSelectionModel)null);
  85.    }
  86.  
  87.    public JTable(int var1, int var2) {
  88.       this(new DefaultTableModel(var1, var2));
  89.    }
  90.  
  91.    public JTable(Vector var1, Vector var2) {
  92.       this(new 1(var2, var1));
  93.    }
  94.  
  95.    public JTable(TableModel var1) {
  96.       this(var1, (TableColumnModel)null, (ListSelectionModel)null);
  97.    }
  98.  
  99.    public JTable(TableModel var1, TableColumnModel var2) {
  100.       this(var1, var2, (ListSelectionModel)null);
  101.    }
  102.  
  103.    public JTable(TableModel var1, TableColumnModel var2, ListSelectionModel var3) {
  104.       ((Container)this).setLayout((LayoutManager)null);
  105.       if (var2 == null) {
  106.          var2 = this.createDefaultColumnModel();
  107.          this.autoCreateColumnsFromModel = true;
  108.       }
  109.  
  110.       this.setColumnModel(var2);
  111.       if (var3 == null) {
  112.          var3 = this.createDefaultSelectionModel();
  113.       }
  114.  
  115.       this.setSelectionModel(var3);
  116.       if (var1 == null) {
  117.          var1 = this.createDefaultDataModel();
  118.       }
  119.  
  120.       this.setModel(var1);
  121.       this.initializeLocalVars();
  122.       this.updateUI();
  123.    }
  124.  
  125.    public JTable(Object[][] var1, Object[] var2) {
  126.       this(new 2(var2, var1));
  127.    }
  128.  
  129.    private void accommodateDelta(int var1, int var2) {
  130.       int var3 = this.getColumnCount();
  131.       int var4;
  132.       int var5;
  133.       switch (this.autoResizeMode) {
  134.          case 1:
  135.             var4 = var1 + 1;
  136.             var5 = var4 + 1;
  137.             break;
  138.          case 2:
  139.             var4 = var1 + 1;
  140.             var5 = var3;
  141.             break;
  142.          case 3:
  143.             var4 = var3 - 1;
  144.             var5 = var4 + 1;
  145.             break;
  146.          case 4:
  147.             var4 = 0;
  148.             var5 = var3;
  149.             break;
  150.          default:
  151.             return;
  152.       }
  153.  
  154.       TableColumnModel var8 = this.columnModel;
  155.       4 var9 = new 4(var8, var5, var4);
  156.       int var10 = 0;
  157.  
  158.       for(int var11 = var4; var11 < var5; ++var11) {
  159.          TableColumn var12 = this.columnModel.getColumn(var11);
  160.          int var13 = var12.getWidth();
  161.          var10 += var13;
  162.       }
  163.  
  164.       this.adjustSizes((long)(var10 + var2), (Resizable3)var9, false);
  165.       this.setWidthsFromPreferredWidths(true);
  166.    }
  167.  
  168.    public void addColumn(TableColumn var1) {
  169.       int var2 = var1.getModelIndex();
  170.       String var3 = this.getModel().getColumnName(var2);
  171.       if (var1.getHeaderValue() == null) {
  172.          var1.setHeaderValue(var3);
  173.       }
  174.  
  175.       this.getColumnModel().addColumn(var1);
  176.    }
  177.  
  178.    public void addColumnSelectionInterval(int var1, int var2) {
  179.       this.columnModel.getSelectionModel().addSelectionInterval(var1, var2);
  180.    }
  181.  
  182.    public void addNotify() {
  183.       super.addNotify();
  184.       this.configureEnclosingScrollPane();
  185.    }
  186.  
  187.    public void addRowSelectionInterval(int var1, int var2) {
  188.       this.selectionModel.addSelectionInterval(var1, var2);
  189.    }
  190.  
  191.    private void adjustSizes(long var1, Resizable2 var3, boolean var4) {
  192.       long var5 = 0L;
  193.       long var7 = 0L;
  194.  
  195.       for(int var9 = 0; var9 < var3.getElementCount(); ++var9) {
  196.          var5 += (long)var3.getLowerBoundAt(var9);
  197.          var7 += (long)var3.getUpperBoundAt(var9);
  198.       }
  199.  
  200.       if (var4) {
  201.          var1 = Math.min(Math.max(var5, var1), var7);
  202.       }
  203.  
  204.       for(int var10 = 0; var10 < var3.getElementCount(); ++var10) {
  205.          int var11 = var3.getLowerBoundAt(var10);
  206.          int var12 = var3.getUpperBoundAt(var10);
  207.          int var13;
  208.          if (var5 == var7) {
  209.             var13 = var11;
  210.          } else {
  211.             double var14 = (double)(var1 - var5) / (double)(var7 - var5);
  212.             var13 = (int)Math.round((double)var11 + var14 * (double)(var12 - var11));
  213.          }
  214.  
  215.          var3.setSizeAt(var13, var10);
  216.          var1 -= (long)var13;
  217.          var5 -= (long)var11;
  218.          var7 -= (long)var12;
  219.       }
  220.  
  221.    }
  222.  
  223.    private void adjustSizes(long var1, Resizable3 var3, boolean var4) {
  224.       int var5 = var3.getElementCount();
  225.       long var6 = 0L;
  226.  
  227.       for(int var8 = 0; var8 < var5; ++var8) {
  228.          var6 += (long)var3.getMidPointAt(var8);
  229.       }
  230.  
  231.       Object var9;
  232.       if (var1 < var6 == (var4 ^ true)) {
  233.          var9 = new 5(var3);
  234.       } else {
  235.          var9 = new 6(var3);
  236.       }
  237.  
  238.       this.adjustSizes(var1, (Resizable2)var9, var4 ^ true);
  239.    }
  240.  
  241.    // $FF: synthetic method
  242.    static Class class$(String var0) {
  243.       try {
  244.          return Class.forName(var0);
  245.       } catch (ClassNotFoundException var2) {
  246.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  247.       }
  248.    }
  249.  
  250.    public void clearSelection() {
  251.       this.columnModel.getSelectionModel().clearSelection();
  252.       this.selectionModel.clearSelection();
  253.    }
  254.  
  255.    public void columnAdded(TableColumnModelEvent var1) {
  256.       if (this.isEditing()) {
  257.          this.removeEditor();
  258.       }
  259.  
  260.       this.resizeAndRepaint();
  261.    }
  262.  
  263.    public int columnAtPoint(Point var1) {
  264.       return this.getColumnModel().getColumnIndexAtX(var1.x);
  265.    }
  266.  
  267.    public void columnMarginChanged(ChangeEvent var1) {
  268.       if (this.isEditing()) {
  269.          this.removeEditor();
  270.       }
  271.  
  272.       this.resizeAndRepaint();
  273.    }
  274.  
  275.    public void columnMoved(TableColumnModelEvent var1) {
  276.       if (this.isEditing()) {
  277.          this.removeEditor();
  278.       }
  279.  
  280.       ((Component)this).repaint();
  281.    }
  282.  
  283.    public void columnRemoved(TableColumnModelEvent var1) {
  284.       if (this.isEditing()) {
  285.          this.removeEditor();
  286.       }
  287.  
  288.       this.resizeAndRepaint();
  289.    }
  290.  
  291.    public void columnSelectionChanged(ListSelectionEvent var1) {
  292.       int var2 = var1.getFirstIndex();
  293.       int var3 = var1.getLastIndex();
  294.       if (var2 == -1 && var3 == -1) {
  295.          ((Component)this).repaint();
  296.       }
  297.  
  298.       Rectangle var4 = this.getCellRect(0, var2, false);
  299.       Rectangle var5 = this.getCellRect(this.getRowCount(), var3, false);
  300.       Rectangle var6 = var4.union(var5);
  301.       ((Component)this).repaint(var6.x, var6.y, var6.width, var6.height);
  302.    }
  303.  
  304.    protected void configureEnclosingScrollPane() {
  305.       Container var1 = ((Component)this).getParent();
  306.       if (var1 instanceof JViewport) {
  307.          Container var2 = ((Component)var1).getParent();
  308.          if (var2 instanceof JScrollPane) {
  309.             JScrollPane var3 = (JScrollPane)var2;
  310.             JViewport var4 = var3.getViewport();
  311.             if (var4 == null || var4.getView() != this) {
  312.                return;
  313.             }
  314.  
  315.             var3.setColumnHeaderView(this.getTableHeader());
  316.             var3.getViewport().setBackingStoreEnabled(true);
  317.             Border var5 = ((JComponent)var3).getBorder();
  318.             if (var5 == null || var5 instanceof UIResource) {
  319.                ((JComponent)var3).setBorder(UIManager.getBorder("Table.scrollPaneBorder"));
  320.             }
  321.          }
  322.       }
  323.  
  324.    }
  325.  
  326.    public int convertColumnIndexToModel(int var1) {
  327.       return var1 < 0 ? var1 : this.getColumnModel().getColumn(var1).getModelIndex();
  328.    }
  329.  
  330.    public int convertColumnIndexToView(int var1) {
  331.       if (var1 < 0) {
  332.          return var1;
  333.       } else {
  334.          TableColumnModel var2 = this.getColumnModel();
  335.  
  336.          for(int var3 = 0; var3 < this.getColumnCount(); ++var3) {
  337.             if (var2.getColumn(var3).getModelIndex() == var1) {
  338.                return var3;
  339.             }
  340.          }
  341.  
  342.          return -1;
  343.       }
  344.    }
  345.  
  346.    protected TableColumnModel createDefaultColumnModel() {
  347.       return new DefaultTableColumnModel();
  348.    }
  349.  
  350.    public void createDefaultColumnsFromModel() {
  351.       TableModel var1 = this.getModel();
  352.       if (var1 != null) {
  353.          TableColumnModel var2 = this.getColumnModel();
  354.          var2.removeColumnModelListener(this);
  355.  
  356.          while(var2.getColumnCount() > 0) {
  357.             var2.removeColumn(var2.getColumn(0));
  358.          }
  359.  
  360.          for(int var3 = 0; var3 < var1.getColumnCount(); ++var3) {
  361.             TableColumn var4 = new TableColumn(var3);
  362.             this.addColumn(var4);
  363.          }
  364.  
  365.          var2.addColumnModelListener(this);
  366.       }
  367.  
  368.    }
  369.  
  370.    protected TableModel createDefaultDataModel() {
  371.       return new DefaultTableModel();
  372.    }
  373.  
  374.    protected void createDefaultEditors() {
  375.       this.defaultEditorsByColumnClass = new Hashtable();
  376.       JTextField var1 = new JTextField();
  377.       ((JComponent)var1).setBorder(new LineBorder(Color.black));
  378.       this.setDefaultEditor(class$java$lang$Object != null ? class$java$lang$Object : (class$java$lang$Object = class$("java.lang.Object")), new DefaultCellEditor(var1));
  379.       JTextField var2 = new JTextField();
  380.       var2.setHorizontalAlignment(4);
  381.       ((JComponent)var2).setBorder(new LineBorder(Color.black));
  382.       this.setDefaultEditor(class$java$lang$Number != null ? class$java$lang$Number : (class$java$lang$Number = class$("java.lang.Number")), new DefaultCellEditor(var2));
  383.       JCheckBox var3 = new JCheckBox();
  384.       ((AbstractButton)var3).setHorizontalAlignment(0);
  385.       this.setDefaultEditor(class$java$lang$Boolean != null ? class$java$lang$Boolean : (class$java$lang$Boolean = class$("java.lang.Boolean")), new DefaultCellEditor(var3));
  386.    }
  387.  
  388.    protected void createDefaultRenderers() {
  389.       this.defaultRenderersByColumnClass = new Hashtable();
  390.       DefaultTableCellRenderer var1 = new DefaultTableCellRenderer();
  391.       this.setDefaultRenderer(class$java$lang$Object != null ? class$java$lang$Object : (class$java$lang$Object = class$("java.lang.Object")), var1);
  392.       7 var2 = new 7();
  393.       ((JLabel)var2).setHorizontalAlignment(4);
  394.       this.setDefaultRenderer(class$java$lang$Number != null ? class$java$lang$Number : (class$java$lang$Number = class$("java.lang.Number")), var2);
  395.       8 var3 = new 8();
  396.       ((JLabel)var3).setHorizontalAlignment(4);
  397.       this.setDefaultRenderer(class$java$util$Date != null ? class$java$util$Date : (class$java$util$Date = class$("java.util.Date")), var3);
  398.       9 var4 = new 9();
  399.       ((JLabel)var4).setHorizontalAlignment(0);
  400.       this.setDefaultRenderer(class$javax$swing$ImageIcon != null ? class$javax$swing$ImageIcon : (class$javax$swing$ImageIcon = class$("javax.swing.ImageIcon")), var4);
  401.       CheckBoxRenderer var5 = new CheckBoxRenderer(this);
  402.       ((AbstractButton)var5).setHorizontalAlignment(0);
  403.       this.setDefaultRenderer(class$java$lang$Boolean != null ? class$java$lang$Boolean : (class$java$lang$Boolean = class$("java.lang.Boolean")), var5);
  404.    }
  405.  
  406.    protected ListSelectionModel createDefaultSelectionModel() {
  407.       return new DefaultListSelectionModel();
  408.    }
  409.  
  410.    protected JTableHeader createDefaultTableHeader() {
  411.       return new JTableHeader(this.columnModel);
  412.    }
  413.  
  414.    /** @deprecated */
  415.    public static JScrollPane createScrollPaneForTable(JTable var0) {
  416.       return new JScrollPane(var0);
  417.    }
  418.  
  419.    public boolean editCellAt(int var1, int var2) {
  420.       return this.editCellAt(var1, var2, (EventObject)null);
  421.    }
  422.  
  423.    public boolean editCellAt(int var1, int var2, EventObject var3) {
  424.       if (this.cellEditor != null && !this.cellEditor.stopCellEditing()) {
  425.          return false;
  426.       } else if (!this.isCellEditable(var1, var2)) {
  427.          return false;
  428.       } else {
  429.          TableCellEditor var4 = this.getCellEditor(var1, var2);
  430.          if (var4 != null && var4.isCellEditable(var3)) {
  431.             this.editorComp = this.prepareEditor(var4, var1, var2);
  432.             this.editorComp.setBounds(this.getCellRect(var1, var2, false));
  433.             ((Container)this).add(this.editorComp);
  434.             this.editorComp.validate();
  435.             this.setCellEditor(var4);
  436.             this.setEditingRow(var1);
  437.             this.setEditingColumn(var2);
  438.             var4.addCellEditorListener(this);
  439.             return true;
  440.          } else {
  441.             return false;
  442.          }
  443.       }
  444.    }
  445.  
  446.    public void editingCanceled(ChangeEvent var1) {
  447.       this.removeEditor();
  448.    }
  449.  
  450.    public void editingStopped(ChangeEvent var1) {
  451.       TableCellEditor var2 = this.getCellEditor();
  452.       if (var2 != null) {
  453.          Object var3 = var2.getCellEditorValue();
  454.          this.setValueAt(var3, this.editingRow, this.editingColumn);
  455.          this.removeEditor();
  456.       }
  457.  
  458.    }
  459.  
  460.    public AccessibleContext getAccessibleContext() {
  461.       if (super.accessibleContext == null) {
  462.          super.accessibleContext = new AccessibleJTable(this);
  463.       }
  464.  
  465.       return super.accessibleContext;
  466.    }
  467.  
  468.    public boolean getAutoCreateColumnsFromModel() {
  469.       return this.autoCreateColumnsFromModel;
  470.    }
  471.  
  472.    public int getAutoResizeMode() {
  473.       return this.autoResizeMode;
  474.    }
  475.  
  476.    public TableCellEditor getCellEditor() {
  477.       return this.cellEditor;
  478.    }
  479.  
  480.    public TableCellEditor getCellEditor(int var1, int var2) {
  481.       TableColumn var3 = this.getColumnModel().getColumn(var2);
  482.       TableCellEditor var4 = var3.getCellEditor();
  483.       if (var4 == null) {
  484.          var4 = this.getDefaultEditor(this.getColumnClass(var2));
  485.       }
  486.  
  487.       return var4;
  488.    }
  489.  
  490.    public Rectangle getCellRect(int var1, int var2, boolean var3) {
  491.       int var4 = 0;
  492.       int var6 = this.getColumnModel().getColumnMargin();
  493.       Enumeration var7 = this.getColumnModel().getColumns();
  494.       Rectangle var5 = new Rectangle();
  495.       var5.height = this.getRowHeight() + this.rowMargin;
  496.  
  497.       for(var5.y = var1 * var5.height; var7.hasMoreElements(); ++var4) {
  498.          TableColumn var8 = (TableColumn)var7.nextElement();
  499.          var5.width = var8.getWidth() + var6;
  500.          if (var4 == var2) {
  501.             break;
  502.          }
  503.  
  504.          var5.x += var5.width;
  505.       }
  506.  
  507.       if (!var3) {
  508.          Dimension var9 = this.getIntercellSpacing();
  509.          var5.setBounds(var5.x + var9.width / 2, var5.y + var9.height / 2, var5.width - var9.width, var5.height - var9.height);
  510.       }
  511.  
  512.       return var5;
  513.    }
  514.  
  515.    public TableCellRenderer getCellRenderer(int var1, int var2) {
  516.       TableColumn var3 = this.getColumnModel().getColumn(var2);
  517.       TableCellRenderer var4 = var3.getCellRenderer();
  518.       if (var4 == null) {
  519.          var4 = this.getDefaultRenderer(this.getColumnClass(var2));
  520.       }
  521.  
  522.       return var4;
  523.    }
  524.  
  525.    public boolean getCellSelectionEnabled() {
  526.       return this.cellSelectionEnabled;
  527.    }
  528.  
  529.    public TableColumn getColumn(Object var1) {
  530.       TableColumnModel var2 = this.getColumnModel();
  531.       int var3 = var2.getColumnIndex(var1);
  532.       return var2.getColumn(var3);
  533.    }
  534.  
  535.    public Class getColumnClass(int var1) {
  536.       return this.getModel().getColumnClass(this.convertColumnIndexToModel(var1));
  537.    }
  538.  
  539.    public int getColumnCount() {
  540.       return this.getColumnModel().getColumnCount();
  541.    }
  542.  
  543.    public TableColumnModel getColumnModel() {
  544.       return this.columnModel;
  545.    }
  546.  
  547.    public String getColumnName(int var1) {
  548.       return this.getModel().getColumnName(this.convertColumnIndexToModel(var1));
  549.    }
  550.  
  551.    public boolean getColumnSelectionAllowed() {
  552.       return this.columnModel.getColumnSelectionAllowed();
  553.    }
  554.  
  555.    public TableCellEditor getDefaultEditor(Class var1) {
  556.       if (var1 == null) {
  557.          return null;
  558.       } else {
  559.          Object var2 = this.defaultEditorsByColumnClass.get(var1);
  560.          return var2 != null ? (TableCellEditor)var2 : this.getDefaultEditor(var1.getSuperclass());
  561.       }
  562.    }
  563.  
  564.    public TableCellRenderer getDefaultRenderer(Class var1) {
  565.       if (var1 == null) {
  566.          return null;
  567.       } else {
  568.          Object var2 = this.defaultRenderersByColumnClass.get(var1);
  569.          return var2 != null ? (TableCellRenderer)var2 : this.getDefaultRenderer(var1.getSuperclass());
  570.       }
  571.    }
  572.  
  573.    public int getEditingColumn() {
  574.       return this.editingColumn;
  575.    }
  576.  
  577.    public int getEditingRow() {
  578.       return this.editingRow;
  579.    }
  580.  
  581.    public Component getEditorComponent() {
  582.       return this.editorComp;
  583.    }
  584.  
  585.    public Color getGridColor() {
  586.       return this.gridColor;
  587.    }
  588.  
  589.    public Dimension getIntercellSpacing() {
  590.       return new Dimension(this.getColumnModel().getColumnMargin(), this.rowMargin);
  591.    }
  592.  
  593.    public TableModel getModel() {
  594.       return this.dataModel;
  595.    }
  596.  
  597.    public Dimension getPreferredScrollableViewportSize() {
  598.       return this.preferredViewportSize;
  599.    }
  600.  
  601.    public int getRowCount() {
  602.       return this.getModel().getRowCount();
  603.    }
  604.  
  605.    public int getRowHeight() {
  606.       return this.rowHeight;
  607.    }
  608.  
  609.    public int getRowMargin() {
  610.       return this.rowMargin;
  611.    }
  612.  
  613.    public boolean getRowSelectionAllowed() {
  614.       return this.rowSelectionAllowed;
  615.    }
  616.  
  617.    public int getScrollableBlockIncrement(Rectangle var1, int var2, int var3) {
  618.       if (var2 == 1) {
  619.          int var4 = this.getRowHeight() + this.getRowMargin();
  620.          return var4 > 0 ? Math.max(var4, var1.height / var4 * var4) : var1.height;
  621.       } else {
  622.          return var1.width;
  623.       }
  624.    }
  625.  
  626.    public boolean getScrollableTracksViewportHeight() {
  627.       return false;
  628.    }
  629.  
  630.    public boolean getScrollableTracksViewportWidth() {
  631.       return this.autoResizeMode != 0;
  632.    }
  633.  
  634.    public int getScrollableUnitIncrement(Rectangle var1, int var2, int var3) {
  635.       return var2 == 0 ? 100 : this.rowHeight + this.rowMargin;
  636.    }
  637.  
  638.    public int getSelectedColumn() {
  639.       return this.columnModel.getSelectionModel().getMinSelectionIndex();
  640.    }
  641.  
  642.    public int getSelectedColumnCount() {
  643.       return this.columnModel.getSelectedColumnCount();
  644.    }
  645.  
  646.    public int[] getSelectedColumns() {
  647.       return this.columnModel.getSelectedColumns();
  648.    }
  649.  
  650.    public int getSelectedRow() {
  651.       return this.selectionModel.getMinSelectionIndex();
  652.    }
  653.  
  654.    public int getSelectedRowCount() {
  655.       if (this.selectionModel != null) {
  656.          int var1 = this.selectionModel.getMinSelectionIndex();
  657.          int var2 = this.selectionModel.getMaxSelectionIndex();
  658.          int var3 = 0;
  659.  
  660.          for(int var4 = var1; var4 <= var2; ++var4) {
  661.             if (this.selectionModel.isSelectedIndex(var4)) {
  662.                ++var3;
  663.             }
  664.          }
  665.  
  666.          return var3;
  667.       } else {
  668.          return 0;
  669.       }
  670.    }
  671.  
  672.    public int[] getSelectedRows() {
  673.       if (this.selectionModel != null) {
  674.          int var1 = this.selectionModel.getMinSelectionIndex();
  675.          int var2 = this.selectionModel.getMaxSelectionIndex();
  676.          if (var1 != -1 && var2 != -1) {
  677.             int[] var3 = new int[1 + (var2 - var1)];
  678.             int var4 = 0;
  679.  
  680.             for(int var5 = var1; var5 <= var2; ++var5) {
  681.                if (this.selectionModel.isSelectedIndex(var5)) {
  682.                   var3[var4++] = var5;
  683.                }
  684.             }
  685.  
  686.             int[] var6 = new int[var4];
  687.             System.arraycopy(var3, 0, var6, 0, var4);
  688.             return var6;
  689.          } else {
  690.             return new int[0];
  691.          }
  692.       } else {
  693.          return new int[0];
  694.       }
  695.    }
  696.  
  697.    public Color getSelectionBackground() {
  698.       return this.selectionBackground;
  699.    }
  700.  
  701.    public Color getSelectionForeground() {
  702.       return this.selectionForeground;
  703.    }
  704.  
  705.    public ListSelectionModel getSelectionModel() {
  706.       return this.selectionModel;
  707.    }
  708.  
  709.    public boolean getShowHorizontalLines() {
  710.       return this.showHorizontalLines;
  711.    }
  712.  
  713.    public boolean getShowVerticalLines() {
  714.       return this.showVerticalLines;
  715.    }
  716.  
  717.    public JTableHeader getTableHeader() {
  718.       return this.tableHeader;
  719.    }
  720.  
  721.    public String getToolTipText(MouseEvent var1) {
  722.       String var2 = null;
  723.       Point var3 = var1.getPoint();
  724.       int var4 = this.columnAtPoint(var3);
  725.       int var5 = this.rowAtPoint(var3);
  726.       if (var4 != -1 && var5 != -1) {
  727.          TableCellRenderer var6 = this.getCellRenderer(var5, var4);
  728.          Component var7 = this.prepareRenderer(var6, var5, var4);
  729.          if (var7 instanceof JComponent) {
  730.             Rectangle var8 = this.getCellRect(var5, var4, false);
  731.             var3.translate(-var8.x, -var8.y);
  732.             MouseEvent var9 = new MouseEvent(var7, ((AWTEvent)var1).getID(), ((InputEvent)var1).getWhen(), ((InputEvent)var1).getModifiers(), var3.x, var3.y, var1.getClickCount(), var1.isPopupTrigger());
  733.             var2 = ((JComponent)var7).getToolTipText(var9);
  734.          }
  735.       }
  736.  
  737.       if (var2 == null) {
  738.          var2 = ((JComponent)this).getToolTipText();
  739.       }
  740.  
  741.       return var2;
  742.    }
  743.  
  744.    public TableUI getUI() {
  745.       return (TableUI)super.ui;
  746.    }
  747.  
  748.    public String getUIClassID() {
  749.       return "TableUI";
  750.    }
  751.  
  752.    public Object getValueAt(int var1, int var2) {
  753.       return this.getModel().getValueAt(var1, this.convertColumnIndexToModel(var2));
  754.    }
  755.  
  756.    protected void initializeLocalVars() {
  757.       this.getSelectionModel().setAnchorSelectionIndex(0);
  758.       this.columnModel.getSelectionModel().setAnchorSelectionIndex(0);
  759.       ((JComponent)this).setOpaque(true);
  760.       this.createDefaultRenderers();
  761.       this.createDefaultEditors();
  762.       this.setTableHeader(this.createDefaultTableHeader());
  763.       this.setShowGrid(true);
  764.       this.setAutoResizeMode(2);
  765.       this.setRowHeight(16);
  766.       this.rowMargin = 1;
  767.       this.setRowSelectionAllowed(true);
  768.       this.setCellSelectionEnabled(false);
  769.       this.cellEditor = null;
  770.       this.editingColumn = this.editingRow = -1;
  771.       this.preferredViewportSize = new Dimension(450, 400);
  772.       ToolTipManager var1 = ToolTipManager.sharedInstance();
  773.       var1.registerComponent(this);
  774.       ((JComponent)this).setAutoscrolls(true);
  775.    }
  776.  
  777.    public boolean isCellEditable(int var1, int var2) {
  778.       return this.getModel().isCellEditable(var1, this.convertColumnIndexToModel(var2));
  779.    }
  780.  
  781.    public boolean isCellSelected(int var1, int var2) {
  782.       if (this.cellSelectionEnabled) {
  783.          return this.isRowSelected(var1) && this.isColumnSelected(var2);
  784.       } else {
  785.          return this.getRowSelectionAllowed() && this.isRowSelected(var1) || this.getColumnSelectionAllowed() && this.isColumnSelected(var2);
  786.       }
  787.    }
  788.  
  789.    public boolean isColumnSelected(int var1) {
  790.       return this.columnModel.getSelectionModel().isSelectedIndex(var1);
  791.    }
  792.  
  793.    public boolean isEditing() {
  794.       return this.cellEditor != null;
  795.    }
  796.  
  797.    public boolean isManagingFocus() {
  798.       return true;
  799.    }
  800.  
  801.    public boolean isRowSelected(int var1) {
  802.       return this.selectionModel != null ? this.selectionModel.isSelectedIndex(var1) : false;
  803.    }
  804.  
  805.    public void moveColumn(int var1, int var2) {
  806.       this.getColumnModel().moveColumn(var1, var2);
  807.    }
  808.  
  809.    protected String paramString() {
  810.       String var1 = this.gridColor != null ? this.gridColor.toString() : "";
  811.       String var2 = this.showHorizontalLines ? "true" : "false";
  812.       String var3 = this.showVerticalLines ? "true" : "false";
  813.       String var4;
  814.       if (this.autoResizeMode == 0) {
  815.          var4 = "AUTO_RESIZE_OFF";
  816.       } else if (this.autoResizeMode == 1) {
  817.          var4 = "AUTO_RESIZE_NEXT_COLUMN";
  818.       } else if (this.autoResizeMode == 2) {
  819.          var4 = "AUTO_RESIZE_SUBSEQUENT_COLUMNS";
  820.       } else if (this.autoResizeMode == 3) {
  821.          var4 = "AUTO_RESIZE_LAST_COLUMN";
  822.       } else if (this.autoResizeMode == 4) {
  823.          var4 = "AUTO_RESIZE_ALL_COLUMNS";
  824.       } else {
  825.          var4 = "";
  826.       }
  827.  
  828.       String var5 = this.autoCreateColumnsFromModel ? "true" : "false";
  829.       String var6 = this.preferredViewportSize != null ? this.preferredViewportSize.toString() : "";
  830.       String var7 = this.rowSelectionAllowed ? "true" : "false";
  831.       String var8 = this.cellSelectionEnabled ? "true" : "false";
  832.       String var9 = this.selectionForeground != null ? this.selectionForeground.toString() : "";
  833.       String var10 = this.selectionBackground != null ? this.selectionBackground.toString() : "";
  834.       return super.paramString() + ",autoCreateColumnsFromModel=" + var5 + ",autoResizeMode=" + var4 + ",cellSelectionEnabled=" + var8 + ",editingColumn=" + this.editingColumn + ",editingRow=" + this.editingRow + ",gridColor=" + var1 + ",preferredViewportSize=" + var6 + ",rowHeight=" + this.rowHeight + ",rowMargin=" + this.rowMargin + ",rowSelectionAllowed=" + var7 + ",selectionBackground=" + var10 + ",selectionForeground=" + var9 + ",showHorizontalLines=" + var2 + ",showVerticalLines=" + var3;
  835.    }
  836.  
  837.    public Component prepareEditor(TableCellEditor var1, int var2, int var3) {
  838.       Object var4 = this.getValueAt(var2, var3);
  839.       boolean var5 = this.isCellSelected(var2, var3);
  840.       Component var6 = var1.getTableCellEditorComponent(this, var4, var5, var2, var3);
  841.       if (var6 instanceof JComponent) {
  842.          ((JComponent)var6).setNextFocusableComponent(this);
  843.       }
  844.  
  845.       return var6;
  846.    }
  847.  
  848.    public Component prepareRenderer(TableCellRenderer var1, int var2, int var3) {
  849.       Object var4 = this.getValueAt(var2, var3);
  850.       boolean var5 = this.isCellSelected(var2, var3);
  851.       boolean var6 = this.selectionModel.getAnchorSelectionIndex() == var2;
  852.       boolean var7 = this.columnModel.getSelectionModel().getAnchorSelectionIndex() == var3;
  853.       boolean var8 = var6 && var7 && ((JComponent)this).hasFocus();
  854.       return var1.getTableCellRendererComponent(this, var4, var5, var8, var2, var3);
  855.    }
  856.  
  857.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  858.       var1.defaultReadObject();
  859.       if (super.ui != null && this.getUIClassID().equals("TableUI")) {
  860.          super.ui.installUI(this);
  861.       }
  862.  
  863.       this.createDefaultRenderers();
  864.       this.createDefaultEditors();
  865.    }
  866.  
  867.    public void removeColumn(TableColumn var1) {
  868.       this.getColumnModel().removeColumn(var1);
  869.    }
  870.  
  871.    public void removeColumnSelectionInterval(int var1, int var2) {
  872.       this.columnModel.getSelectionModel().removeSelectionInterval(var1, var2);
  873.    }
  874.  
  875.    public void removeEditor() {
  876.       TableCellEditor var1 = this.getCellEditor();
  877.       if (var1 != null) {
  878.          var1.removeCellEditorListener(this);
  879.          ((JComponent)this).requestFocus();
  880.          ((Container)this).remove(this.editorComp);
  881.          Rectangle var2 = this.getCellRect(this.editingRow, this.editingColumn, false);
  882.          this.setCellEditor((TableCellEditor)null);
  883.          this.setEditingColumn(-1);
  884.          this.setEditingRow(-1);
  885.          this.editorComp = null;
  886.          ((JComponent)this).repaint(var2);
  887.       }
  888.  
  889.    }
  890.  
  891.    public void removeRowSelectionInterval(int var1, int var2) {
  892.       this.selectionModel.removeSelectionInterval(var1, var2);
  893.    }
  894.  
  895.    public void reshape(int var1, int var2, int var3, int var4) {
  896.       boolean var5 = ((JComponent)this).getWidth() != var3;
  897.       super.reshape(var1, var2, var3, var4);
  898.       if (var5) {
  899.          this.sizeColumnsToFit(-1);
  900.       }
  901.  
  902.    }
  903.  
  904.    protected void resizeAndRepaint() {
  905.       ((JComponent)this).revalidate();
  906.       ((Component)this).repaint();
  907.    }
  908.  
  909.    public int rowAtPoint(Point var1) {
  910.       int var2 = var1.y;
  911.       int var3 = this.getRowHeight();
  912.       int var4 = this.getIntercellSpacing().height;
  913.       int var5 = var3 + var4;
  914.       int var6 = var2 / var5;
  915.       if (var6 < 0) {
  916.          return -1;
  917.       } else {
  918.          return var6 >= this.getRowCount() ? -1 : var6;
  919.       }
  920.    }
  921.  
  922.    public void selectAll() {
  923.       if (this.isEditing()) {
  924.          this.removeEditor();
  925.       }
  926.  
  927.       this.setRowSelectionInterval(0, this.getRowCount() - 1);
  928.       this.setColumnSelectionInterval(0, this.getColumnCount() - 1);
  929.    }
  930.  
  931.    public void setAutoCreateColumnsFromModel(boolean var1) {
  932.       if (this.autoCreateColumnsFromModel != var1) {
  933.          this.autoCreateColumnsFromModel = var1;
  934.          if (this.autoCreateColumnsFromModel) {
  935.             this.createDefaultColumnsFromModel();
  936.          }
  937.       }
  938.  
  939.    }
  940.  
  941.    public void setAutoResizeMode(int var1) {
  942.       if (var1 == 0 || var1 == 1 || var1 == 2 || var1 == 3 || var1 == 4) {
  943.          this.autoResizeMode = var1;
  944.          this.resizeAndRepaint();
  945.          if (this.tableHeader != null) {
  946.             this.tableHeader.resizeAndRepaint();
  947.          }
  948.       }
  949.  
  950.    }
  951.  
  952.    public void setCellEditor(TableCellEditor var1) {
  953.       TableCellEditor var2 = this.cellEditor;
  954.       this.cellEditor = var1;
  955.       ((JComponent)this).firePropertyChange("tableCellEditor", var2, var1);
  956.    }
  957.  
  958.    public void setCellSelectionEnabled(boolean var1) {
  959.       this.cellSelectionEnabled = var1;
  960.    }
  961.  
  962.    public void setColumnModel(TableColumnModel var1) {
  963.       if (var1 == null) {
  964.          throw new IllegalArgumentException("Cannot set a null ColumnModel");
  965.       } else {
  966.          TableColumnModel var2 = this.columnModel;
  967.          if (var1 != var2) {
  968.             if (var2 != null) {
  969.                var2.removeColumnModelListener(this);
  970.             }
  971.  
  972.             this.columnModel = var1;
  973.             var1.addColumnModelListener(this);
  974.             if (this.tableHeader != null) {
  975.                this.tableHeader.setColumnModel(var1);
  976.             }
  977.  
  978.             ((JComponent)this).firePropertyChange("columnModel", var2, var1);
  979.             this.resizeAndRepaint();
  980.          }
  981.  
  982.       }
  983.    }
  984.  
  985.    public void setColumnSelectionAllowed(boolean var1) {
  986.       this.columnModel.setColumnSelectionAllowed(var1);
  987.    }
  988.  
  989.    public void setColumnSelectionInterval(int var1, int var2) {
  990.       this.columnModel.getSelectionModel().setSelectionInterval(var1, var2);
  991.    }
  992.  
  993.    public void setDefaultEditor(Class var1, TableCellEditor var2) {
  994.       if (var2 != null) {
  995.          this.defaultEditorsByColumnClass.put(var1, var2);
  996.       } else {
  997.          this.defaultEditorsByColumnClass.remove(var1);
  998.       }
  999.  
  1000.    }
  1001.  
  1002.    public void setDefaultRenderer(Class var1, TableCellRenderer var2) {
  1003.       if (var2 != null) {
  1004.          this.defaultRenderersByColumnClass.put(var1, var2);
  1005.       } else {
  1006.          this.defaultRenderersByColumnClass.remove(var1);
  1007.       }
  1008.  
  1009.    }
  1010.  
  1011.    public void setEditingColumn(int var1) {
  1012.       this.editingColumn = var1;
  1013.    }
  1014.  
  1015.    public void setEditingRow(int var1) {
  1016.       this.editingRow = var1;
  1017.    }
  1018.  
  1019.    public void setGridColor(Color var1) {
  1020.       if (var1 == null) {
  1021.          throw new IllegalArgumentException("New color is null");
  1022.       } else {
  1023.          this.gridColor = var1;
  1024.          ((Component)this).repaint();
  1025.       }
  1026.    }
  1027.  
  1028.    public void setIntercellSpacing(Dimension var1) {
  1029.       this.rowMargin = var1.height;
  1030.       this.getColumnModel().setColumnMargin(var1.width);
  1031.       this.resizeAndRepaint();
  1032.    }
  1033.  
  1034.    public void setModel(TableModel var1) {
  1035.       TableModel var2 = this.dataModel;
  1036.       if (var1 == null) {
  1037.          throw new IllegalArgumentException("Cannot set a null TableModel");
  1038.       } else {
  1039.          if (var1 != var2) {
  1040.             if (var2 != null) {
  1041.                var2.removeTableModelListener(this);
  1042.             }
  1043.  
  1044.             this.dataModel = var1;
  1045.             var1.addTableModelListener(this);
  1046.             if (this.getColumnModel() != null) {
  1047.                this.tableChanged(new TableModelEvent(this.dataModel, -1));
  1048.             }
  1049.  
  1050.             ((JComponent)this).firePropertyChange("model", var2, var1);
  1051.          }
  1052.  
  1053.       }
  1054.    }
  1055.  
  1056.    public void setPreferredScrollableViewportSize(Dimension var1) {
  1057.       this.preferredViewportSize = var1;
  1058.    }
  1059.  
  1060.    public void setRowHeight(int var1) {
  1061.       if (var1 <= 0) {
  1062.          throw new IllegalArgumentException("New row height less than 1");
  1063.       } else {
  1064.          this.rowHeight = var1;
  1065.          this.resizeAndRepaint();
  1066.       }
  1067.    }
  1068.  
  1069.    public void setRowMargin(int var1) {
  1070.       this.rowMargin = var1;
  1071.    }
  1072.  
  1073.    public void setRowSelectionAllowed(boolean var1) {
  1074.       this.rowSelectionAllowed = var1;
  1075.    }
  1076.  
  1077.    public void setRowSelectionInterval(int var1, int var2) {
  1078.       this.selectionModel.setSelectionInterval(var1, var2);
  1079.    }
  1080.  
  1081.    public void setSelectionBackground(Color var1) {
  1082.       Color var2 = this.selectionBackground;
  1083.       this.selectionBackground = var1;
  1084.       ((JComponent)this).firePropertyChange("selectionBackground", var2, var1);
  1085.    }
  1086.  
  1087.    public void setSelectionForeground(Color var1) {
  1088.       Color var2 = this.selectionForeground;
  1089.       this.selectionForeground = var1;
  1090.       ((JComponent)this).firePropertyChange("selectionForeground", var2, var1);
  1091.    }
  1092.  
  1093.    public void setSelectionMode(int var1) {
  1094.       this.clearSelection();
  1095.       this.getSelectionModel().setSelectionMode(var1);
  1096.       this.getColumnModel().getSelectionModel().setSelectionMode(var1);
  1097.    }
  1098.  
  1099.    public void setSelectionModel(ListSelectionModel var1) {
  1100.       if (var1 == null) {
  1101.          throw new IllegalArgumentException("Cannot set a null SelectionModel");
  1102.       } else {
  1103.          ListSelectionModel var2 = this.selectionModel;
  1104.          if (var1 != var2) {
  1105.             if (var2 != null) {
  1106.                var2.removeListSelectionListener(this);
  1107.             }
  1108.  
  1109.             this.selectionModel = var1;
  1110.             if (var1 != null) {
  1111.                var1.addListSelectionListener(this);
  1112.             }
  1113.  
  1114.             ((JComponent)this).firePropertyChange("selectionModel", var2, var1);
  1115.             ((Component)this).repaint();
  1116.          }
  1117.  
  1118.       }
  1119.    }
  1120.  
  1121.    public void setShowGrid(boolean var1) {
  1122.       this.setShowHorizontalLines(var1);
  1123.       this.setShowVerticalLines(var1);
  1124.       ((Component)this).repaint();
  1125.    }
  1126.  
  1127.    public void setShowHorizontalLines(boolean var1) {
  1128.       this.showHorizontalLines = var1;
  1129.       ((Component)this).repaint();
  1130.    }
  1131.  
  1132.    public void setShowVerticalLines(boolean var1) {
  1133.       this.showVerticalLines = var1;
  1134.       ((Component)this).repaint();
  1135.    }
  1136.  
  1137.    public void setTableHeader(JTableHeader var1) {
  1138.       if (this.tableHeader != var1) {
  1139.          if (this.tableHeader != null) {
  1140.             this.tableHeader.setTable((JTable)null);
  1141.          }
  1142.  
  1143.          this.tableHeader = var1;
  1144.          if (this.tableHeader != null) {
  1145.             this.tableHeader.setTable(this);
  1146.          }
  1147.       }
  1148.  
  1149.    }
  1150.  
  1151.    public void setUI(TableUI var1) {
  1152.       if (super.ui != var1) {
  1153.          super.setUI(var1);
  1154.          ((Component)this).repaint();
  1155.       }
  1156.  
  1157.    }
  1158.  
  1159.    public void setValueAt(Object var1, int var2, int var3) {
  1160.       this.getModel().setValueAt(var1, var2, this.convertColumnIndexToModel(var3));
  1161.    }
  1162.  
  1163.    private void setWidthsFromPreferredWidths(boolean var1) {
  1164.       int var2 = this.getColumnCount();
  1165.       int var3 = var2 * this.getColumnModel().getColumnMargin();
  1166.       int var4 = ((JComponent)this).getWidth() - var3;
  1167.       int var5 = ((JComponent)this).getPreferredSize().width - var3;
  1168.       int var6 = !var1 ? var4 : var5;
  1169.       TableColumnModel var7 = this.columnModel;
  1170.       3 var8 = new 3(var7, var1);
  1171.       this.adjustSizes((long)var6, (Resizable3)var8, var1);
  1172.    }
  1173.  
  1174.    public void sizeColumnsToFit(int var1) {
  1175.       if (var1 == -1) {
  1176.          this.setWidthsFromPreferredWidths(false);
  1177.       } else if (this.autoResizeMode == 0) {
  1178.          Enumeration var2 = this.getColumnModel().getColumns();
  1179.  
  1180.          while(var2.hasMoreElements()) {
  1181.             TableColumn var3 = (TableColumn)var2.nextElement();
  1182.             var3.setPreferredWidth(var3.getWidth());
  1183.          }
  1184.       } else {
  1185.          int var4 = ((JComponent)this).getWidth() - this.getColumnModel().getTotalColumnWidth();
  1186.          this.accommodateDelta(var1, var4);
  1187.       }
  1188.  
  1189.    }
  1190.  
  1191.    /** @deprecated */
  1192.    public void sizeColumnsToFit(boolean var1) {
  1193.       int var2 = this.autoResizeMode;
  1194.       this.setAutoResizeMode(var1 ? 3 : 4);
  1195.       this.sizeColumnsToFit(-1);
  1196.       this.setAutoResizeMode(var2);
  1197.    }
  1198.  
  1199.    public void tableChanged(TableModelEvent var1) {
  1200.       if (var1 != null && var1.getFirstRow() != -1) {
  1201.          if (var1.getType() == 1) {
  1202.             this.tableRowsInserted(var1);
  1203.          } else if (var1.getType() == -1) {
  1204.             this.tableRowsDeleted(var1);
  1205.          } else {
  1206.             int var2 = var1.getColumn();
  1207.             int var3 = var1.getFirstRow();
  1208.             int var4 = var1.getLastRow();
  1209.             if (var3 == -1) {
  1210.                var3 = 0;
  1211.                var4 = Integer.MAX_VALUE;
  1212.             }
  1213.  
  1214.             int var5 = this.getRowHeight() + this.rowMargin;
  1215.             Rectangle var6;
  1216.             if (var2 == -1) {
  1217.                var6 = new Rectangle(0, var3 * var5, this.getColumnModel().getTotalColumnWidth(), 0);
  1218.             } else {
  1219.                int var7 = this.convertColumnIndexToView(var2);
  1220.                var6 = this.getCellRect(var3, var7, false);
  1221.             }
  1222.  
  1223.             if (var4 != Integer.MAX_VALUE) {
  1224.                var6.height = (var4 - var3 + 1) * var5;
  1225.                ((Component)this).repaint(var6.x, var6.y, var6.width, var6.height);
  1226.             } else {
  1227.                this.resizeAndRepaint();
  1228.             }
  1229.  
  1230.          }
  1231.       } else {
  1232.          this.clearSelection();
  1233.          if (this.getAutoCreateColumnsFromModel()) {
  1234.             this.createDefaultColumnsFromModel();
  1235.          }
  1236.  
  1237.          this.resizeAndRepaint();
  1238.          if (this.tableHeader != null) {
  1239.             this.tableHeader.resizeAndRepaint();
  1240.          }
  1241.  
  1242.       }
  1243.    }
  1244.  
  1245.    private void tableRowsDeleted(TableModelEvent var1) {
  1246.       int var2 = var1.getFirstRow();
  1247.       int var3 = var1.getLastRow();
  1248.       if (var2 < 0) {
  1249.          var2 = 0;
  1250.       }
  1251.  
  1252.       int var4 = var3 - var2 + 1;
  1253.       int var5 = this.getRowCount() + var4;
  1254.       int var6 = this.getRowHeight() + this.rowMargin;
  1255.       Rectangle var7 = new Rectangle(0, var2 * var6, this.getColumnModel().getTotalColumnWidth(), (var5 - var2) * var6);
  1256.       if (this.selectionModel != null) {
  1257.          if (var3 < 0) {
  1258.             var3 = this.getRowCount() - 1;
  1259.          }
  1260.  
  1261.          this.selectionModel.removeIndexInterval(var2, var3);
  1262.       }
  1263.  
  1264.       ((JComponent)this).revalidate();
  1265.       ((JComponent)this).repaint(var7);
  1266.    }
  1267.  
  1268.    private void tableRowsInserted(TableModelEvent var1) {
  1269.       int var2 = var1.getFirstRow();
  1270.       int var3 = var1.getLastRow();
  1271.       if (var2 < 0) {
  1272.          var2 = 0;
  1273.       }
  1274.  
  1275.       int var4 = this.getRowHeight() + this.rowMargin;
  1276.       Rectangle var5 = new Rectangle(0, var2 * var4, this.getColumnModel().getTotalColumnWidth(), (this.getRowCount() - var2) * var4);
  1277.       if (this.selectionModel != null) {
  1278.          if (var3 < 0) {
  1279.             var3 = this.getRowCount() - 1;
  1280.          }
  1281.  
  1282.          int var6 = var3 - var2 + 1;
  1283.          this.selectionModel.insertIndexInterval(var2, var6, true);
  1284.       }
  1285.  
  1286.       ((JComponent)this).revalidate();
  1287.       ((JComponent)this).repaint(var5);
  1288.    }
  1289.  
  1290.    private void updateSubComponentUI(Object var1) {
  1291.       if (var1 != null) {
  1292.          Component var2 = null;
  1293.          if (var1 instanceof Component) {
  1294.             var2 = (Component)var1;
  1295.          }
  1296.  
  1297.          if (var1 instanceof DefaultCellEditor) {
  1298.             var2 = ((DefaultCellEditor)var1).getComponent();
  1299.          }
  1300.  
  1301.          if (var2 != null && var2 instanceof JComponent) {
  1302.             ((JComponent)var2).updateUI();
  1303.          }
  1304.  
  1305.       }
  1306.    }
  1307.  
  1308.    public void updateUI() {
  1309.       TableColumnModel var1 = this.getColumnModel();
  1310.  
  1311.       for(int var2 = 0; var2 < var1.getColumnCount(); ++var2) {
  1312.          TableColumn var3 = var1.getColumn(var2);
  1313.          this.updateSubComponentUI(var3.getCellEditor());
  1314.       }
  1315.  
  1316.       Enumeration var4 = this.defaultEditorsByColumnClass.elements();
  1317.  
  1318.       while(var4.hasMoreElements()) {
  1319.          this.updateSubComponentUI(var4.nextElement());
  1320.       }
  1321.  
  1322.       this.setUI((TableUI)UIManager.getUI(this));
  1323.       this.resizeAndRepaint();
  1324.       ((Container)this).invalidate();
  1325.    }
  1326.  
  1327.    public void valueChanged(ListSelectionEvent var1) {
  1328.       int var2 = var1.getFirstIndex();
  1329.       int var3 = var1.getLastIndex();
  1330.       if (var2 == -1 && var3 == -1) {
  1331.          ((Component)this).repaint();
  1332.       }
  1333.  
  1334.       Rectangle var4 = this.getCellRect(var2, 0, false);
  1335.       Rectangle var5 = this.getCellRect(var3, this.getColumnCount(), false);
  1336.       Rectangle var6 = var4.union(var5);
  1337.       ((Component)this).repaint(var6.x, var6.y, var6.width, var6.height);
  1338.    }
  1339. }
  1340.